package com.tanhua.server.service;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import java.io.File;

/**
 * 完成公钥的读取操作
 */
@Service
@Data
public class RSAService {

    private String publicKey;

    @Value("${tanhua.rsa.dir}")
    private String rsaDir;

    /**
     * 完成公钥的读取操作
     */
    @PostConstruct
    public void init() {
        //公钥的文件路径，通过File.separator解决跨平台的目录分隔符的问题
        String publicKeyFile = rsaDir + File.separator + "rsa.pub";

        if (FileUtil.exist(publicKeyFile)) {
            //读取
            this.publicKey = FileUtil.readString(publicKeyFile, CharsetUtil.CHARSET_UTF_8);
        }

        if (StrUtil.isAllEmpty(publicKey)) {
            //如果公钥不存在，就抛出异常，阻止工程的启动
            throw new RuntimeException(StrUtil.format("公钥文件{}不存在", publicKeyFile));
        }
    }
}
